<html>
<head><meta charset="utf-8"><title>SLOW and portable libraries · wg-async-foundations · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/index.html">wg-async-foundations</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html">SLOW and portable libraries</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="230856992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230856992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230856992">(Mar 18 2021 at 12:52)</a>:</h4>
<p><span class="user-mention" data-user-id="224872">@rylev</span> we're still missing SLOW, right? (That is, some kind of library)</p>



<a name="230857089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230857089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230857089">(Mar 18 2021 at 12:53)</a>:</h4>
<p>Yes everything we have is an executable. It would be nice to have a library</p>



<a name="230857323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230857323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230857323">(Mar 18 2021 at 12:55)</a>:</h4>
<p>I'm adding something briefly</p>



<a name="230874266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230874266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230874266">(Mar 18 2021 at 14:39)</a>:</h4>
<p><span class="user-mention" data-user-id="226095">@Dirkjan Ochtman</span> you might be able to suggest improvements for the <a href="https://rust-lang.github.io/wg-async-foundations/vision/projects/SLOW.html">SLOW project page</a> based on Quin :)</p>



<a name="230875494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230875494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230875494">(Mar 18 2021 at 14:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> one thing that might be nice to have for SLOW is an interaction with other resources besides just sockets. I've had a project that took a dependency on a specific runtime because it needed a timer, for example.</p>



<a name="230875916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230875916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230875916">(Mar 18 2021 at 14:49)</a>:</h4>
<p>It might be helpful to have a higher level library, for example <code>kube-rs</code> (for interacting with kubernetes) currently has to decide for the user which runtime they will use. This is very common for high-level non-data-oriented libraries today.</p>



<a name="230887052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230887052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230887052">(Mar 18 2021 at 15:47)</a>:</h4>
<p>yes! I would like to know what sorts of things SLOW (or similar libraries) need from their runtimes</p>



<a name="230887071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230887071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230887071">(Mar 18 2021 at 15:47)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="243965">@Sean McArthur</span> was working on that kind of thing</p>



<a name="230888908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230888908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sean McArthur <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230888908">(Mar 18 2021 at 15:57)</a>:</h4>
<p>I had been just collecting bullet points of things I've noticed of libraries and their support of runtimes, i'll paste the bullet points i have</p>



<a name="230888938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230888938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sean McArthur <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230888938">(Mar 18 2021 at 15:57)</a>:</h4>
<h3>hyper</h3>
<ul>
<li>requires <code>tokio::io::{AsyncRead, AsyncWrite}</code></li>
<li>but otherwise, provides tcp/timer built-ins via a feature flag</li>
<li>defines traits in-crate for connecting, resolving, and spawning<br>
    - allows to be used in fuchsia, or with async-std, etc<br>
    - this does result in a lot of "glue" code in some cases</li>
</ul>
<h3>h3</h3>
<ul>
<li>defines in-crate <code>Connection</code> trait to work with any QUIC implementation<br>
    - This shifts the choice of runtime onto the QUIC library<br>
    - In practice, this means a user can pick a QUIC library that combines with their preferred runtime</li>
</ul>
<h3>reqwest</h3>
<ul>
<li>forces the choice of tokio</li>
<li>allows choice of TLS via feature flags</li>
<li>works with wasm via conditional compilation (not a feature flag)</li>
</ul>
<h3>quinn</h3>
<ul>
<li>split in two crates<br>
    - quinn-proto is the sans-io protocol part<br>
    - quinn is a layer on top combining quinn-proto with tokio</li>
</ul>
<h3>trust-dns</h3>
<h3>sqlx</h3>
<h3>quiche</h3>
<ul>
<li>implements the QUIC protocol</li>
<li>doesn't even bother with IO at all<br>
    - kind of like the sans-io layer in other libraries<br>
    - but skips having some <code>quiche-tokio</code> layer or feature</li>
</ul>



<a name="230889078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889078">(Mar 18 2021 at 15:58)</a>:</h4>
<p>broke this out into a fresh topic</p>



<a name="230889132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889132">(Mar 18 2021 at 15:58)</a>:</h4>
<p>so, this is talking about <em>how</em> the problem is solved, which is good, feels more (to me) like status quo stories</p>



<a name="230889178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889178">(Mar 18 2021 at 15:58)</a>:</h4>
<p>what is not in here that I'd be curious to know about is what <em>parts</em> of tokio (or other libraries) these different crates use</p>



<a name="230889207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889207">(Mar 18 2021 at 15:58)</a>:</h4>
<p>timers, spawning, creating sockets?</p>



<a name="230889232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889232">(Mar 18 2021 at 15:59)</a>:</h4>
<p><span class="user-mention" data-user-id="243965">@Sean McArthur</span> have you gathered any data like that?</p>



<a name="230889355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889355">(Mar 18 2021 at 15:59)</a>:</h4>
<p>(or <span class="user-mention" data-user-id="119031">@Esteban Küber</span> ..?)</p>



<a name="230889446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889446">(Mar 18 2021 at 16:00)</a>:</h4>
<p>we had a thread on this before, didn't we...? :)</p>



<a name="230889538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889538">(Mar 18 2021 at 16:00)</a>:</h4>
<p><a class="stream-topic" data-stream-id="187312" href="/#narrow/stream/187312-wg-async-foundations/topic/portability.20and.20runtimes">#wg-async-foundations &gt; portability and runtimes</a></p>



<a name="230889572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230889572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sean McArthur <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230889572">(Mar 18 2021 at 16:00)</a>:</h4>
<p>Only whats in the bullet points. like hyper uses those 3 things. i think <code>quinn</code> does as well</p>



<a name="230890291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230890291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230890291">(Mar 18 2021 at 16:02)</a>:</h4>
<p><span class="user-mention" data-user-id="243965">@Sean McArthur</span> can you explain this point:</p>
<blockquote>
<p>but otherwise, provides tcp/timer built-ins via a feature flag</p>
</blockquote>



<a name="230890763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230890763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230890763">(Mar 18 2021 at 16:03)</a>:</h4>
<blockquote>
<p>defines traits in-crate for connecting, resolving, and spawning</p>
</blockquote>
<p>This is interesting and should be exposed in a story. Making runtime independent libraries is somewhat possible today but is far from the default, path of least resistance. It requires deliberate care from the library maintainer to make it possible.</p>



<a name="230890775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230890775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sean McArthur <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230890775">(Mar 18 2021 at 16:03)</a>:</h4>
<p>There's a <code>tcp</code> feature flag in hyper to enable a connector that uses tokio's <code>TcpStream</code>, and <code>runtime</code> (name kinda sucks) with the purpose of defaulting the executor/spawner to tokio, and enabling a few timeout options</p>



<a name="230891023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230891023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230891023">(Mar 18 2021 at 16:04)</a>:</h4>
<p>And if I want a <code>TcpStream</code> from another runtime, do I need to provide the plumbing?</p>



<a name="230891064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230891064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sean McArthur <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230891064">(Mar 18 2021 at 16:04)</a>:</h4>
<p>yep</p>



<a name="230892945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230892945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dirkjan Ochtman <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230892945">(Mar 18 2021 at 16:11)</a>:</h4>
<p>Quinn also uses timers and spawning, we create sockets with tokio but also have a custom implementation for Linux that's based on mio</p>



<a name="230893047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230893047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dirkjan Ochtman <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230893047">(Mar 18 2021 at 16:12)</a>:</h4>
<p>one important concern for this kind of project is zero-cost abstractions</p>



<a name="230893172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230893172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dirkjan Ochtman <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230893172">(Mar 18 2021 at 16:12)</a>:</h4>
<p>so ideally not much boxing (of futures), currently handwritten futures for lack of TAIT, etc</p>



<a name="230893301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230893301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dirkjan Ochtman <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230893301">(Mar 18 2021 at 16:12)</a>:</h4>
<p>but yeah, the sans-io + runtime layer is a really strong approach IMO</p>



<a name="230893418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230893418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dirkjan Ochtman <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230893418">(Mar 18 2021 at 16:13)</a>:</h4>
<p>I also have that with imap-proto + tokio-imap, where there exist several other client impls on top of my sans-io proto implementation (imap [sync] and async-imap [async-std])</p>



<a name="230893937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230893937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230893937">(Mar 18 2021 at 16:16)</a>:</h4>
<p>If a library is predominately data oriented this doesn't seem to be too hard of an issue to work through - though there still is the issue of <code>AsyncRead</code>/<code>AsyncWrite</code>. But the higher-level you go where the library isn't just dealing with bytes but also juggling multiple sockets, timers, etc. it doesn't seem very easy to write a runtime independent library.</p>



<a name="230901731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230901731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230901731">(Mar 18 2021 at 17:04)</a>:</h4>
<p>so much juicy detail here :)</p>



<a name="230902000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230902000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230902000">(Mar 18 2021 at 17:05)</a>:</h4>
<p>I'm going to open an issue for this</p>



<a name="230902562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230902562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230902562">(Mar 18 2021 at 17:09)</a>:</h4>
<p><a href="https://github.com/rust-lang/wg-async-foundations/issues/45">https://github.com/rust-lang/wg-async-foundations/issues/45</a></p>



<a name="230905306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230905306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230905306">(Mar 18 2021 at 17:25)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> do you feel like there's also a separate issue worth filing for "a library that uses another library in a runtime agnostic way"? I'm thinking of my 3-line function example I shared with you</p>



<a name="230910808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230910808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230910808">(Mar 18 2021 at 17:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> probably, yes</p>



<a name="230910825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230910825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230910825">(Mar 18 2021 at 17:58)</a>:</h4>
<p>can you repeat the example?</p>



<a name="230910930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/SLOW%20and%20portable%20libraries/near/230910930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/SLOW.20and.20portable.20libraries.html#230910930">(Mar 18 2021 at 17:59)</a>:</h4>
<p><a href="https://docs.rs/rustc-artifacts/0.2.2/src/rustc_artifacts/lib.rs.html#24-27">https://docs.rs/rustc-artifacts/0.2.2/src/rustc_artifacts/lib.rs.html#24-27</a></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>